package com.bridgeintelligent.tag.webserver.dim.mgmt.service.indexdim;

import com.bridgeintelligent.tag.webserver.dim.mgmt.api.indexdim.IndexDimModel;
import com.bridgeintelligent.tag.webserver.dim.mgmt.api.indexdim.IndexNameInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IIndexDimService {


    /**
     * 根据索引状态获取索引列表信息
     * @param indexStatus 索引状态
     * @return 索引列表信息
     */
    List<IndexNameInfo> indexNameList(String indexStatus);

    /**
     * 查询索引标签配置信息列表
     * @return 索引标签配置列表
     */
    List<IndexDimModel> IndexDimList();

    /**
     * 新增索引标签信息
     * @param indexDimModel
     */
    void addIndexDimInfo(IndexDimModel indexDimModel);

    /**
     * 修改索引标签信息
     * @param indexDimModel
     */
    void updateIndexDimInfo(IndexDimModel indexDimModel);

    /**
     * 根据ID删除索引标签信息
     * @param id 索引ID
     */
    void delIndexDimInfo(@Param("id")Integer id);

    /**
     * 根据索引ID查询索引标签配置信息
     * @param id 索引ID
     * @return
     */
    IndexDimModel findIndexDimById(@Param("id")Integer id);

    /**
     * 启动索引
     * @param id
     */
    void updateUpIndexStatus(@Param("id")Integer id);

    /**
     * 禁用索引
     * @param id
     */
    void updateDownIndexStatus(@Param("id")Integer id);

    /**
     * 校验名索引编码和名字唯一性
     * @param type 0代表校验indexCode，1代表校验indexName
     * @param id 主键
     * @param indexCode
     * @param indexName
     * @return
     */
    boolean checkCodeOrName(int type,String id ,String indexCode,String indexName);

    /**
     * 通过索引ID查询对应的标签ID列表，再根据标签ID查询对应的目录列表
     * @param indexId
     * @return
     */
    public List<String> findCatalogIdByDims(String indexId);

    /**
     * 根據ID修改状态
     * @param id
     * @param status
     */
    void updateStatusById(String id,String status);



}
